iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

leetcode題目分享系列 第 7

[Day 7] 92. Reverse Linked List II

  • 分享至 

  • xImage
  •  

先走一遍linked-list把要反轉的推進stack,再重走一遍把數值改掉(btw順便複習可愛的林可得利私><)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseBetween(ListNode* head, int left, int right) {
        stack<int> st;
        ListNode *curr = head;
        int count = 1;
        while(curr){
            if(count >= left && count <= right){
                st.push(curr->val);
            }
            curr = curr->next;
            count++;
        }
        curr = head;
        count = 1;
        while(curr){
            if(count >= left && count <= right){
                curr->val = st.top();
                st.pop();
            }
            curr = curr->next;
            count++;
        }
        return head;
    }
};

上一篇
[Day 6] 725. Split Linked List in Parts
下一篇
[Day 8] 118. Pascal's Triangle
系列文
leetcode題目分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言